In a computer program testing process, code coverage rate is an indicator used to assess program code coverage. The code coverage rate measures the extent a source code is used during testing. Statistics relating to the code coverage rate enables one to understanding how much of the code in a program has been executed and helps determine where the code coverage is insufficient to thereby discover potential problems with the program.
One code coverage rate determination method includes tagging runtime situations of code to be tested, take a final count of the quantity of run code executed based on the number of tags encountered, and determine the code coverage rate by comparing the quantity of run code based on the quantity of tags encountered against the total quantity of code. For example, the method comprises: determining a total quantity of code in a program to be tested, a base address of the program to be tested, and a relative virtual address of each line of code of the program; setting up break points in each line of code based on the base address and the relative virtual address; determining whether a break point occurs in the execution of the program to be tested; and tagging the line of code in which the break point has occurred. Finally, the cumulative total of tagged lines of code is used to obtain the total quantity of executed code. The total quantity of executed code divided by the total quantity of code of the program to be tested is the code coverage rate.
Another method comprises: before a testing process begins, revising a source code and configuration of the program to be tested by adding test information output settings to the source code for which a code coverage rate is to be determined; during the testing process, internally recording tags output by the source code that has been tested based on the test information output settings added into the source code; and upon conclusion of the testing process, retrieving the source code that has been executed based on the tags, and comparing a quantity of source code executed based on the number of tags output with the total quantity of source code to obtain the code coverage rate.
The methods described above all add tags to the source code in advance to determine the code coverage rate. When the volume of source code is very large, the above methods generate a large amount of processing, which affects the testing time. Also, because the above methods require processing of the source code, the above code coverage rate determination methods only apply to the testing stage of a program and cannot be implemented during the actual execution of the program.